星巡研究院

渗透视角下的操作系统底层

**1. 干什么** 三个常用命令结构一致:用户态只做循环与格式化,实际数据由内核经系统调用提供。ls 读目录条目,cat 原样搬运文件字节,ps 读取`/proc`伪文件系统中的进程状态。 **2. 谁在调** * 用户态主体:ls、cat、ps 三个独立外部命令进程。 * C 库封装层:ls 用`opendir`/`readdir`,cat 用`open`/`read`/`write`,ps 用`opendir`/`readdir`配合`open`/`read`。 * 内核态主体:目录条目由`getdents64`返回,文件字节由`read`返回,`/proc`内容由内核在读取时动态生成。 **3. 做什么业务** ls 先`opendir(".")`请内核把目录作为文件打开,再循环`readdir`取条目(名字与 inode 号),经`printf`走`write`输出。cat`open`取得描述符后循环`read`/`write`,不解析内容。ps 不持有特权接口,而是`opendir("/proc")`、`readdir`出数字目录名,再逐个读取其中`cmd
这是进阶内容

升级理论包获取本册全部章节,从机器本质系统入门